package com.lac.component.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author xiaokuixiao
 * date2025/8/7 14:45
 */
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GoodsSpuQueryVo implements Serializable {

    /**
     * UID
     */
    private static final long serialVersionUID = 1L;

    // ================================================================
    // Fields
    // ================================================================

    /**
     * PK
     */

    private String id;

    /**
     * 所属租户
     */

    private String tenantId;

    /**
     * spu编码
     */

    private String spuCode;

    /**
     * spu名字
     */

    private String name;

    /**
     * 卖点
     */

    private String sellPoint;

    /**
     * 描述
     */

    private String description;

    /**
     * 商城商品分类ID
     */

    private String categoryId;

    /**
     * 商品图片
     */

    private String[] picUrls;

    /**
     * 上架状态（1上架 0下架 2未上架 3部分上架）
     */

    private String shelf;

    /**
     * 销量
     */

    private Integer saleNum;

    /**
     * 0统一规格；1多规格
     */

    private String specType;

    /**
     * 逻辑删除标记（0：显示；1：隐藏）
     */

    private String delFlag;

    /**
     * 商品隐藏标记(0:显示；1:隐藏)
     */

    private String hiddenFlag;

    /**
     * 积分赠送开关（1开 0关）
     */

    private String pointsGiveSwitch;

    /**
     * 积分赠送数量
     */

    private Integer pointsGiveNum;

    /**
     * 积分抵扣开关（1开 0关）
     */

    private String pointsDeductSwitch;

    /**
     * 积分抵扣商品金额比例（0~100）
     */

    private Integer pointsDeductScale;

    /**
     * 1积分数可抵多少元
     */

    private BigDecimal pointsDeductAmount;

    /**
     * 运费模板ID
     */

    private String freightTemplatId;

    /**
     * 审核状态（0审核中 1审核通过 2审核不通过）
     */

    private String verifyStatus;

    /**
     * 审核明细
     */

    private String verifyDetail;

    /**
     * spu类型： mall商城，health健康服务，combine组合商品详情（goods_spu_combine）如果多个组合，号隔开
     */
      private String spuType;

    /**
     * 创建人的用户id
     */

    private String createdUserId;

    /**
     * 供应商id
     */
    private String supplierId;

    /**
     * 供应商类型
     */
    private String supplierType;

    /**
     * 退款有效期
     */

    private String refundExpiryDate;

    /**
     * 品牌id
     */

    private String brandId;

    /**
     * 单位
     */

    private String units;

    /**
     * 不可配送区域编码，多个逗号隔开
     */

    private String notDeliveryRegionCode;

    /**
     * 是否首次上架，默认首次上架（0非首次 1首次）
     */

    private Boolean isFirstShelf;

    private String createUser;


    private Date createTime;


    private String updateUser;


    private Date updateTime;

    /**
     * 供应商名称
     */

    private String userName;

    /**
     * sku
     */
    private List<GoodsSkuQueryVo> skus;

    /**
     * 商品规格
     */
    private List<SpuSpecDTO> spuSpec;

    /**
     * 运费模版
     */
    private FreightTemplatQueryVo freightTemplat;

    /**
     * 商品溯源
     */
    private List<GoodsSpuTraceSourceQueryVo> traceSourceList;

    /**
     * 用户级别
     */
    private String userType;

    /**
     * 父spu的id，关联上级供应商spu的id
     */
    private String parentId;

    /**
     * 商品类型1实物商品2服务商品3虚拟商品
     */
    private String goodsType;

    /**
     * 下级供应商的id，初始创建的为当前供应商的id
     */
    private String parentSpuSupplierId;

    /**
     * 生效日期，多规格使用一个生效日期，该字段记录在goods_spu_operation_log中
     */

    private Date effectiveDate;

    /**
     * 溯源开关（1开 0关）
     */
    private String traceSourceSwitch;


    /**
     * 审核标识，标识是否有审核记录（1有 0没有）
     */
    private String auditFlag;

    /**
     * 视频号品牌id
     */
    private String videoBrandId;

    /**
     * 视频号七天无理由退货
     */
    private Integer videoSevenDayReturn;

    /**
     * 商品分类属性
     */
    private List<GoodsCategoryAttributeQueryVo> categoryAttributeList;

    /**
     * 渠道详情
     */
    private List<GoodsSpuChannelQueryVo> channelList;

    /**
     * 售后地址id
     */
    private String refundAddressId;

    /**
     * 退货地址类型 {@link com.ecej.oms.service.admin.enums}
     */
    private Integer refundAddressType;

    /**
     * e家分享可见标识(默认0不可见 1可见)
     */
    private Integer visibleFlag;

    /**
     * 生效类型 1:定时上线；2:立即生效 {@link com.ecej.oms.service.admin.enums.SalePriceEffectiveTypeEnum}
     */
    private Integer effectiveType;

    /**
     * 标签详情
     */
    private List<GoodsSpuTagQueryVo> tagList;


    /**
     * 同步渠道标记（0：待更新；1：已更新）
     */
    private Integer syncFlag;

    /**
     * 直播id
     */
    private String liveId;

    /**
     * 第三方商品来源类型 {@link com.ecej.oms.service.admin.enums.ThirdpartySourceTypeEnum}
     */
    private String thirdSourceType;

    /**
     * 第三方商品来源id
     */
    private String thirdSourceId;

    /**
     * 配送时效{@link com.ecej.oms.service.admin.enums.LogisticsTimeEnum}
     */
    private Integer logisticsTime;


    /**
     * 安全审核状态{@link com.ecej.oms.service.admin.enums.SafetyAuditEnum}
     */

    private Integer securityAuditStatus;
}